#include <iostream>

using namespace std;
const int N=100;
int arr[N][N];
int dp[2*N][N][N];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>arr[i][j];
			
	for(int k=2;k<=n+m;k++)
	{
		for(int i1=1;i1<=n;i1++)
		{
			for(int i2=1;i2<=n;i2++)
			{
				int j1=k-i1,j2=k-i2;
				if(j1>=1 && j1<=m && j2>=1 && j2<=m)
				{
					int t=arr[i1][j1];
					if(i1!=i2)
						t+=arr[i2][j2];
					dp[k][i1][i2]=max(dp[k][i1][i2],dp[k-1][i1-1][i2-1]+t);
					dp[k][i1][i2]=max(dp[k][i1][i2],dp[k-1][i1-1][i2]+t);
					dp[k][i1][i2]=max(dp[k][i1][i2],dp[k-1][i1][i2-1]+t);
					dp[k][i1][i2]=max(dp[k][i1][i2],dp[k-1][i1][i2]+t);
				}
			}
		}
	}
	cout<<dp[n+m][n][m];
	return 0;
}
